In recent general computer systems including memory systems, many data operations, particularly, operations of processing data sets frequently occur. For example, an operation of searching for data containing two keywords A and B in a full text search system is to obtain the intersection of a data set containing A and a data set containing B.
A presently most widely used general computer system is a memory system that manages data by using addresses. When processing data in this manner, data and addresses are managed in one-to-one correspondence with each other. To process data sets as described above, therefore, software processing based on a complicated algorithm is generally essential.
On the other hand, some memory systems manage data by using their contents themselves instead of addresses. From the viewpoints of the cost and the compatibility with the existing systems, however, these memory systems are used in special applications but rarely used in general computer systems.
When processing data sets in the conventional computer systems, complicated software processing is necessary owing to the limitations on memory systems. This degrades the performance and makes the systems difficult to handle.